const types = {
    SET_CURRENT_TAGS: 'SET_CURRENT_TAGS',
    ADD_TAGS: 'ADD_TAGS',
    DEL_TAG: 'DEL_TAG'
}
const tags = {
    state: {
        curTagIndex: null,
        tagsArr: []
    },
    getters: {
        tagsArr: state => state.tagsArr,
        curTagIndex: state => state.curTagIndex
    },
    mutations: {
        [types.SET_CURRENT_TAGS](state, tagsObj) {
            var arr = state.tagsArr
            var result = arr.some(item=>{
                if(item.path == tagsObj.path){
                   return true 
               } 
             })
             if(result) {
                 state.tagsArr.forEach((item, index) => {
                    if(item.path == tagsObj.path) {
                        state.curTagIndex = index
                    }
                 })
             }
        },
        [types.ADD_TAGS](state, tagsObj) {
            var arr = state.tagsArr
            var result = arr.some(item=>{
                if(item.path == tagsObj.path){
                   return true 
               } 
             })
            if(!result) {
                state.tagsArr.push(tagsObj)
            }
        },
        [types.DEL_TAG](state, tagsObj) {
            var arr = state.tagsArr
            var result = arr.some(item=>{
                if(item.path == tagsObj.path){
                   return true 
               } 
             })
             if(result) {
                state.tagsArr.forEach((item, index) => {
                    if(item.path == tagsObj.path) {
                        state.tagsArr.splice(index, 1)
                        state.curTagIndex = state.tagsArr.length - 1
                    }
                })   
             }
        }
    }
}

export default tags;